控制反轉到底是什麼,不說還以為在打UNO呢!?他是一種軟體設計的模式,用於管理和組織軟體組件之間的依賴關係。在傳統的程式設計中,組件通常會需要自行創建和管理其所依賴的對象或組件,但在IoC中,這種控制權被反轉,由框架(Spring)或容器來管理和控制組件之間的依賴關係。
定義聽起來很抽象且咬文嚼字是吧?來打個比方,今天我們想要吃飯,從買菜備料煮飯吃飯到善後,食材需你自己去處理,抓來宰來殺來烤來吃掉!!但是今天我們在餐廳裡(IoC),你只需要告訴服務員您的選擇,然後服務員會為你送上食物,最後在幫你清理桌子。不再親手執行所有操作,而是將控制權轉移到服務員(外部實體)。
是不是容易理解的多呢!更可以為程式帶來不少的優點:
總結,Spring框架提供了IoC容器,藉由依賴注入實現控制反轉,並在Java應用程式中廣泛使用,以改善程式的結構和可維護性!!!
資料來源
https://en.wikipedia.org/wiki/Inversion_of_control
https://www.baeldung.com/inversion-control-and-dependency-injection-in-spring